The present disclosure relates generally to data processing and, in particular, to a method, system, and computer program product for cache injection using clustering.
Cache injection is used to inject data into caches within a multiprocessor environment. Flat SMP (Symmetrical Multiprocessor) architectures use a snoopy broadcast bus or interconnect. Cache injection schemes for flat SMPs use broadcast to inject values, as locations of cache lines are not available in directories. For NUMA (Non-uniform Memory Access) distributed memory machines and SMP machines, storing input/output (I/O) page addresses for all applications in the system chipset or I/O hub in regular form is also not practical. Additionally, storing all possible I/O page addresses at application start time is also not feasible, as the application may dynamically allocate memory and pages for I/O transactions.
What is needed is a way to provide efficient cache injection using protocols that avoid broadcasts, that are prudent with use of storage for inject-able addresses, and that dynamically attempt to determine useful addresses for injection.